package com.example.zhunongzonghe.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.zhunongzonghe.beans.ZnCollectPostBean;
import com.example.zhunongzonghe.beans.ZnExchangePostBean;
import com.example.zhunongzonghe.entity.ZnCollectPost;

/**
* @author 蔡某人
* @description 针对表【zn_collect_post】的数据库操作Service
* @createDate 2024-04-09 23:56:42
*/
public interface ZnCollectPostService extends IService<ZnCollectPost> {

    /**
     * 用户收藏帖子
     * @param znCollectPostBean
     * @return
     */
    void addCollect(ZnCollectPostBean znCollectPostBean, String userName);

    /**
     * 帖子是否被收藏
     * @param postId
     * @param userId
     * @return
     */
    Boolean isCollect(Integer postId,Integer userId);

    /**
     * 获取当前帖子收藏数量
     * @param postId
     * @return
     */
    Integer CollectCounts(Integer postId);
    /**
     * redis同步收藏数据到MySql数据库
     */
    void syncPostCollect();

    /**
     * 批量删除重复的帖子数据
     */
    void delRepetition();

    /**
     * 分页查询当前用户的帖子收藏
     * @param userName
     * @param currentPage
     * @param pageSize
     * @return
     */
    Page<ZnCollectPostBean> getMyCollect(String userName,Integer currentPage,Integer pageSize);

    /**
     * 当前用户取消帖子收藏
     * @param collectPost
     */
    void updateStatus(ZnCollectPost collectPost);

    /**
     * 用户查看自己的收藏
     * @param userName
     * @param currentPage
     * @param pageSize
     * @return
     */
    Page<ZnExchangePostBean> MyCollects(String userName,Integer currentPage,Integer pageSize);
}
